package com.smart.utils;

import java.util.regex.Pattern;

/**
 * @author: zyh
 * @date: 2023-06-20
 */
public class StringUtil {
    /**
     * 判断是否为数字
     * @param str
     * @return
     */
    public static boolean isNumeric(String str) {
        return str.matches("[\\+-]?[0-9]*(\\.[0-9]*)?([eE][\\+-]?[0-9]+)?");
    }

    /**
     * 判断是否为1开头的手机号
     * @param phoneNumber
     * @return
     */
    public static boolean isPhoneNumber(String phoneNumber) {
        String regex = "^1\\d{10}$";
        return Pattern.matches(regex, phoneNumber);
    }

    /**
     * 判断字符串是否为6-20位字母或数字
     * @param str
     * @return
     */
    public static boolean isValidPassword(String str) {
        String regex = "^[a-zA-Z0-9]{6,20}$";
        return Pattern.matches(regex, str);
    }

    /**
     * 判断字符串是否为1-20位字母或数字
     * @param str
     * @return
     */
    public static boolean isValidAccount(String str) {
        String regex = "^[a-zA-Z0-9]{1,20}$";
        return Pattern.matches(regex, str);
    }

    /**
     * 判断字符串是否为最长10位字母或数字
     * @param str
     * @return
     */
    public static boolean isValidProjectNumber(String str) {
        String regex = "^[a-zA-Z0-9]{1,10}$";
        return Pattern.matches(regex, str);
    }

    /**
     * 判断字符串是否为正确身份证号
     * @param str
     * @return
     */
    public static boolean isIdCard(String str) {
        String regex = "\\d{17}[\\d|x|X]";
        return Pattern.matches(regex, str);
    }
}
